You are given the following information, but you may prefer to do some research for yourself.

  • 1 Jan 1900 was a Monday.
  • Thirty days has September,
  • April, June and November.
  • All the rest have thirty-one,
  • Saving February a|lone,
  • Which has twenty-eight, rain or shine.
  • And on leap years, twenty-nine.
  • A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?


In [13]:
let isSunday (d:System.DateTime) = d.DayOfWeek = System.DayOfWeek.Sunday

let dateFromPair (year,month) = new System.DateTime(year, month, 1)

let pairWith lst x = 
    lst |> List.map (fun y -> (x,y)) 

[1901..2000]
|> List.map (pairWith [1..12]) 
|> List.concat
|> List.map dateFromPair
|> List.filter isSunday
|> List.length


Out[13]:
171

In [ ]: